<template>
  <transition name="fade" mode="out-in">
    <router-view class="app-view w100" v-if="isRouterAlive"></router-view>
  </transition>
</template>

<script type="text/javascript">
export default {
  provide() {
    return {
      reload: this.reload
    };
  },
  data() {
    return {
      isRouterAlive: true
    };
  },
  methods: {
    reload() {
      this.isRouterAlive = false;
      this.$nextTick(function() {
        this.isRouterAlive = true;
      });
    }
  }
};
</script>

<style lang="stylus" rel="stylesheet/stylus">
/* 页面切换动画 */
/* 进入过渡的结束状态，元素被插入时就生效，在过渡过程完成后移除 */
.fade-enter-active {
  transition: opacity 0.3s;
}

/* 进入过渡的开始状态，元素被插入时生效，只应用一帧后立刻删除 */
.fade-enter {
  opacity: 0;
}

/* 离开过渡的开始状态，元素被删除时触发，只应用一帧后立刻删除 */
.fade-leave {
  opacity: 1;
}

/* 离开过渡的结束状态，元素被删除时生效，离开过渡完成后被删除 */
.fade-leave-active {
  opacity: 0;
  transition: opacity 0.3s;
}
</style>
